package com.itlong.cloud.property.dao;


import com.itlong.cloud.POJO.PO.PropertyInfoPO;
import com.itlong.cloud.POJO.VO.property.PropertyProjectPropertyInfoVO;
import com.itlong.cloud.abstracts.IAbstractBaseDao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *     物业投诉、物业报修、物业通知与便民信息 数据访问接口
 * </desc>
 * @createDate 2017-10-13.
 */
@Mapper
@Repository
public interface IPropertyPropertyInfoDao extends IAbstractBaseDao<PropertyInfoPO>{


    /**
     * <desc>
     *      单条查询 物业信息
     * <desc/>
     *
     * @param propertyInfoId 查询参数
     * @return
     * @author ZiXuan
     * @createDate 2017-12-01
     */
    PropertyProjectPropertyInfoVO getOnePropertyInfo(@Param("propertyInfoId") String propertyInfoId);

    /**
     * <desc>
     *      分页查询 物业信息列表
     * <desc/>
     *
     * @param params 查询参数
     * @return
     * @author ZiXuan
     * @createDate 2017-10-16
     */
    List<PropertyProjectPropertyInfoVO> getSimplePage(Map<String,Object> params);

    /**
     * <desc>
     *      获取记录数
     * <desc/>
     *
     * @param params 查询参数
     * @return
     * @author ZiXuan
     * @createDate 2017-10-16
     */
    Integer getCount(Map<String, Object> params);


    /**
     * <desc>
     *      添加 物业信息。
     * <desc/>
     *
     * @param  params
     * @return 返回影响函数
     * @author ZiXuan
     * @createDate 2017-10-26
     */
    Integer save(Map<String,Object> params);

    /**
     * <desc>
     *      修改 物业信息。
     * <desc/>
     *
     * @param  params
     * @return  返回影响函数
     * @author ZiXuan
     * @createDate 2017-10-26
     */
    Integer update(Map<String,Object> params);

    /**
     * <desc>
     *      删除物业信息。
     * <desc/>
     *
     * @param propertyInfoIds 物业信息ID列表
     * @return 返回影响行数
     * @author ZiXuan
     * @createDate 2017-11-02
     */
    Integer delete(@Param("propertyInfoIds")String[] propertyInfoIds);

    /**
     * <desc>
     *      获取投诉记录列表
     * </desc>
     *
     * @param params 查询参数
     * @return 投诉记录列表
     * @author wangzhi
     * @createDate 2019/06/17
     */
    List<Map<String,Object>> getComplaintList(Map<String, Object> params);

    /**
     * <desc>
     *      获取投诉详情
     * </desc>
     *
     * @param msgId 投诉记录ID
     * @return 投诉详情
     * @author wangzhi
     * @createDate 2019/06/17
     */
    Map<String,Object> getComplaintDetail(@Param("msgId") String msgId);
}
